The present invention relates to a storage controller and a control method thereof, and is suitably applicable to a storage controller including snapshot and remote copy capabilities.
Some conventional storage controllers include the snapshot capability which maintains a point-in-time data image of a logical volume (snapshot) (see Japanese Patent Laid-Open No. 2001-209565). A number of methods for creating snapshots on these storage controllers have been proposed such as a first method in which only the differences from an original logical volume are held as a snapshot and a second method in which data is duplexed and held in two logical volumes and, when creating a snapshot, the duplex is suspended and one of the volumes is provided as a snapshot.
For the second snapshot creating method, an approach has been proposed in recent years in which an additional, temporary logical volume for temporarily storing a snapshot is provided and is used as a buffer when data stored in a logical volume that is to be provided as a snapshot is saved into a storage media such as a tape (see Japanese Patent Laid-Open No. 2001-331378). This method has the advantages that the time for which duplex is suspended for obtaining a snapshot can be reduced, and the amount of original data copied to a mirror-target logical volume for mirror resynchronization can be reduced to reduce the time required for mirror resynchronization during which the performance of data access from a database program degrades.
On the other hand, storage systems have been made commercially available that use the so-called remote copy function as a method for guarding data against disasters such as earthquakes, fires, and floods or terror attacks that duplexes and holds data in a primary storage controller and a secondary storage controller located at a main center and a remote center, respectively, ten to several hundreds kilometers split from each other.
The remote copy function is broadly classified into two types: synchronous and asynchronous. The synchronous remote copy function performs remote copy in such a manner that completion of a data write is reported to a host system after the data is written in both primary and secondary storage controllers. The asynchronous remote copy function performs remote copy in such a manner that completion of a data write is reported to a host system after the data is written in a primary storage controller, and then the data is transferred to the secondary storage controller at an appropriate time.
If conventional storage systems using such a remote copy function include multiple storage controllers at both of the primary and secondary locations, each of the storage controllers at the primary location is independently connected to its associated controller at the secondary location through a communication link and remote copy is performed between them. Therefore, if the main center at which the primary storage controllers are located breaks down, temporal inconsistency in remote-copied data may occur among the secondary storage controllers located at the remote center. It is difficult to maintain data consistency between the main and remote centers if some precautionary measures such as timestamping have not been taken.
Therefore, a technology has been proposed in recent years in which a single storage controller at the main center (hereinafter referred to as the primary storage controller) is connected with the remaining storage controllers (hereinafter referred to as secondary storage controllers), the primary storage controller repeatedly in synchronization with this, suspends and resumes remote copying at predetermined times and the second storage controllers repeatedly suspend and resume remote copying, thereby ensuring data consistency between the main and remote centers at suspension times.
Here, consider a storage system that has the first snapshot-creating method described above and the asynchronous remote copy function and includes a primary storage controller in which multiple logical volumes for a user to read and write data are provided (hereinafter referred to as the first logical volumes).
If the amount of data write to a particular first logical volume in the storage system increases and exceeds the amount of data transferred from the primary storage controller to a secondary storage controller, the first logical volume consumes much of the storage space in a logical volume for holding the differences between the original, first logical volume and the created snapshot (hereinafter referred to as the second logical volume) and, at the worst, exhausts the storage space.
Therefore, a storage system in which all of the first logical volumes in a primary storage controller share a single second logical volume has the problem that an increase in the amount of data write to a particular first logical volume impacts the entire storage system and consequently it becomes difficult to create and retain snapshots of the other logical volume.